<?php
include('class/class_connect.php');
include('class/class_page.php');
include('class/city_rus.php');
include('class/class_form.php');
include('class/class_workdays.php');
include('class/class_citystreet.php');
include('class/class_checkGetData.php');
include('class/class_address.php');
include('includes/rubriks.php');
include('class/class_ask.php');
include('class/class_geo.php');
include('class/class_checkAddress.php');
$cityRus=new city_rus_class();
$aForm=new  form();
$aCheck=new checkGetData('f');
$geo=new geo();
foreach($_GET as $key=>$val)
{
	$_GET[$key]=checkGetData::safetyCheck($val);
}
foreach($_POST as $key=>$val)
{
	if($key=='countAddress')continue;
	$_POST[$key]=checkGetData::safetyCheck($val);
}
session_start();
if(!$_SESSION['login'])
{
	header('location: registr.php?city='.$_GET['city']);
	exit;
}
if($_POST['addFirms'])
{
	$positions=array();
	$warning=false;
    $checkAddress=new checkAddress();
	$warning=$aForm->checkInput($_POST['city'], 'город', 'city', '', 40, 3, "/^[-a-zA-Z0-9_]+$/", '', '');
	if(!$warning)
		$aCheck->checkCity($_POST['city']);
	if(!$warning)
	{
		$checkDiv=false;
		$checkSubdiv=false;
		foreach($divises as $division=>$divSubs)
		{
			if($division==$_POST['division'])$checkDiv=true;
			for($i=0; $i<count($divSubs); $i++)
				if($divSubs[$i]==$_POST['subdiv'])$checkSubdiv=true;
		}
	}
	if(!$warning)
		$warning=$aForm->checkInput($_POST['division'], 'рубрика', 'division', '', 80, 3, "(.)", '', '');
	if(!$warning)
		if(!$checkDiv)$warning='Недопустимая рубрика!';
	if(!$warning)
		$warning=$aForm->checkInput($_POST['subdiv'], 'раздел рубрики', 'division', '', 80, 3, "(.)", '', '');
	if(!$warning)
			if(!$checkSubdiv)$warning='Недопустимый раздел рубрики!';
	if(!$warning)
		$warning=$aForm->checkInput($_POST['name'], 'название', 'name', '', 80, 1, "", "\" ` ^ ~ < > \r\n", 'o (Только русские и английские буквы и цифры и -!@#*?&$()\'.,)');
	if(!$warning)
		$warning=$aForm->checkInput($_POST['short'], 'краткое описание', 'short', '', 80, 2, "", "\" ` ^ ~ < > \r\n", 'o (Только русские и английские буквы и цифры и -@#&()\'.,)');
	if($_POST['link'])
	{
		$_POST['link']=str_replace('http://', '', $_POST['link']);
		$_POST['link']=str_replace('https://', '', $_POST['link']);
		$_POST['link']=str_replace('www.', '', $_POST['link']);
	}
	if(!$warning && $_POST['link']!='')
		$warning=$aForm->checkInput($_POST['link'], 'веб-сайт', 'link', '', 60, 5, "", ", \" ` ^ ~ < > \r\n ! № % : ?   =  $ &  [ ] / + \\ { } [ ] ;  \'", ' (Только буквы,цифры и -_.)');
	for($i=1; $i<=count($_POST['countAddress']); $i++)
	{
		$number=$i;
		if(!$warning)
			$warning=$aForm->checkInput($_POST['street'.$number], 'поле "улица" в форме адреса №'.$number, 'street'.$number, '', 40, 3, "", ", \"` ^ ~ < > \r\n ! № % : ? * ( ) + = # $ & q w e r t y u i p [ ] a s d f g h j k l ; z x c v b n m ", 'о (Только русские буквы и цифры тире и точка)');
		if(!$warning)
			$warning=$aForm->checkInput($_POST['building'.$number], 'дом в форме адреса №'.$number, 'building'.$number, '', 14, 1, "", ", \" ` ^ ~ < > \r\n ! № % : ? * ( ) + = # $ & q w e r t y u i p [ ] a s d f g h j k l ; z x c v b n m ", ' (Только русские буквы и цифры тире и точка)');
		if(!$warning && $_POST['phone'.$number]!='')
			$warning=$aForm->checkInput($_POST['phone'.$number], 'телефон в форме адреса №'.$number, 'phone'.$number, '', 40, 7, "", ", \" ` ^ ~ < > \r\n ! № % : ?   =  $ &  [ ] ", ' (Только буквы,цифры и +()-)');
		if(!$warning)
		{
			$position=$geo->getPositionByAddress($cityRus->city_rus_im($_POST['city']), $_POST['street'.$number], $_POST['building'.$number]);
			$positions[]=$position;
		}
		$address[$i]=$checkAddress->checkStreet($_POST['street'.$i]).'^'.$checkAddress->checkBuilding($_POST['building'.$i]).'^'.$_POST['phone'.$i].'^'.$_POST['mallSuggest'.$i].'^'.workdays::getWorkdays($i).'^'.$position;
		if(!$warning)
		{
			if($_POST['mallSuggest'.$i])
			{
				$a=explode(',', $_POST['mallSuggest'.$i]);
				$mallsFirm[]=$a[0];
			}
			$citystreet[][$_POST['street'.$number]]=$_POST['building'.$number];
		}
	}
	$address=implode('|', $address);
	if(!$warning && $_POST['textTitle']!='')
		$warning=$aForm->checkInput($_POST['textTitle'], 'заголовок текста', 'textTitle', '', 100, 1, "", " \" \r\n ` ^ ~", ' (все символы кроме "`^~)');
	if(!$warning && $_POST['stext']!='')
		$warning=$aForm->checkInput($_POST['stext'], 'текст', 'stext', '', 6000, 0, "", " \" ` ^ ~", ' (все символы кроме "`^~)');

	if(!$warning)
	{
		if($positions)$positions=implode(',', $positions);
		if($mallsfirm)$malls=implode(',', $mallsFirm);
		$date=date("Y-m-d H:i:s");
		$dataToInsert="name='".$_POST['name']."',
			division='".$_POST['division']."',
			subdiv='".$_POST['subdiv']."',
			short='".$_POST['short']."',
			link='".$_POST['link']."',
			address='".$address."',
			positions='".$positions."',
			text_title='".$_POST['textTitle']."',
			stext='".$_POST['stext']."',
			malls='".$malls."',
			user='".$_SESSION['login']."',
			data='".$date."'";
		$aConnect=new connect('f');
		$aConnect->insert_data($_POST['city'], $dataToInsert);
		$id=mysql_insert_id();
		for($i=0; $i<count($citystreet); $i++)
		{
			foreach($citystreet[$i] as $street=>$building)
				$aCityStreet=new cityStreet($_POST['city'], $street, $building);
		}
		$aConnect=new connect('m');
		for($i=0; $i<count($mallsFirm); $i++)
		{
			$row=mysql_fetch_array($aConnect->select_all($_POST['city'], "WHERE id='".$mallsFirm[$i]."'"));
			if($row['firms'])
			{
				$firms=explode('|', $row['firms']);
				if(!in_array($id.'^'.$_POST['name'].'^'.$_POST['subdiv'], $firms))
				{
					$row['firms'].='|'.$id.'^'.$_POST['name'].'^'.$_POST['subdiv'];
				}
			}
			else
				$row['firms']=$id.'^'.$_POST['name'].'^'.$_POST['subdiv'];
			$aConnect->update_data($_POST['city'], "firms='".$row['firms']."'", "WHERE id='".$mallsFirm[$i]."'");
		}
		$aConnect=new connect('main');
		$row=mysql_fetch_array($aConnect->select_all('users', "WHERE login='".$_SESSION['login']."'"));
		$data=array();
		if(!$row['cities'])$data['cities']=$_POST['city'];
		else
		{
			$cities=explode(',', $row['cities']);
			if(!in_array($_POST['city'], $cities))
			{
				$cities[]=$_POST['city'];
				$cities=implode(',', $cities);
				$data['cities']=$cities;
			}
		}
		if(!$row['firms'])$data['firms']=$_POST['city'].'^'.$id.'^'.$_POST['name'];
		else
		{
			$malls=explode(',', $row['firms']);
			if(!in_array($_POST['city'].'^'.$id.'^'.$_POST['name'], $malls))
			{
				$malls[]=$_POST['city'].'^'.$id.'^'.$_POST['name'];
				$malls=implode(',', $malls);
				$data['firms']=$malls;
			}
		}
		foreach($data as $key=>$vol)
		{
			$dataTo[]=$key."='".$vol."'";
		}
		$dataToUpdate=implode(', ', $dataTo);
		$aConnect->update_data('users', $dataToUpdate, "WHERE login='".$_SESSION['login']."'");
		if($_POST['imgName'])
		{
			if(file_exists($_POST['imgName'].'.jpg'))
			{
				rename($_POST['imgName'].'.jpg', 'pictures/firmspics/'.$_POST['city'].'/'.$id.'.jpg');
			}
		}
		$to='novichkovv@bk.ru';
		$subject='Добавлена новая фирма на Pro-gorod.com';
		$mail='
		Добавлена новая фирма на сайте Pro-gorod.com.<br />
		название: '.$_POST['name'].'<br />
		ссылка: pro-gorod.com/firms.php?city='.$_POST['city'].'&id='.$id.'
		';
		$headers  = 'MIME-Version: 1.0' . "\r\n";
		$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";

		$headers .= 'To: <'.$to.'>' . "\r\n";
		$headers .= 'From: pro-gorod.com <no-reply@pro-gorod.com>' . "\r\n";
			mail($to, $subject, $mail, $headers);
			header('location: firmscabinet.php?city='.$_POST['city'].'&id='.$id);
			exit;
		}
}
class addfirms extends page
{
	var $warning;
	function __construct($warning)
	{
		$this->warning=$warning;
		parent::__construct(false);
	}
	function title()
	{
		echo 'Создать Фирму';
	}
	function maincontent()
	{
		$ask=new ask();
		$ask->answer('cityask', 'Здесь необходимо выбрать регион России и город, в котором расположена фирма');
		$ask->answer('rubrikask', 'Здесь необходимо выбрать рубрику и раздел, в которых будет отображаться фирма');
		$ask->answer('logoask', 'Загрузите логотип вашей компании. Это не обязательно, однако компании без логотипа отображаются
		в любых списках последними.<br />Лучше всего будет смотреться логотип c отношением ширины к высоте 5:2');
		$ask->answer('nameask', 'Введите название фирмы. Лучше опускать аббривеатуры типа "ООО" и т.д.');
		$ask->answer('shortask', 'Введите краткое описание фирмы в одно-два-три слова.<br /> Оно должно нести информацию о
		том, чем фирма занимается.<br /> Например: "Азиатский ресторан", "сеть магазинов электроники" или просто "гостиница".
		');
		$ask->answer('siteask', 'Если у вашей фирмы есть свой сайт, введите его без "www"');
		$ask->answer('addressask', 'Введите адрес, номер телефона или часы работы вашей фирмы.<br /> Если в этом городе ваша фирма
		расположена в нескольких местах, нажимайте кнопку "добавить еще адрес" и вводите нужное количество адресов с
		телефонами и часами работы.<br />');
		$ask->answer('streetask', 'Введите улицу на которой находится фирма. Слово "улица" писать не нужно.<br />
		Например: "Лесная", "1905 года", "проезд Барышникова", "Бульвар Космонавтов", "Комсомольский проспект",
		"Ленинградское шоссе" и т.д.');
		$ask->answer('buildingask', 'Введите номер задания без сокращений типа "д.", "стр." и т.д. Литера пишется без ковычек
		строчной буквой, все другие добавления через дробь "/".<br />
		Например: "23", "41а", "17/8".<br />
		Если по введенному адресу зарегистрирован торговый центр, после ввода номера здания появится его название. Если ваша фирма находится
		в этом торговом центре, оставьте появившийся флажок, если нет - отключите его. ');
		$ask->answer('phoneask', 'Введите один номер телефона, по которому вам звонят клиенты. Вводите номер полностью,
		с восьмеркой, чтобы пользователи могли позвонить, нажав на номер, если они используют наш сайт с телефона.<br />
		Если есть добавочный номер, напишите "доб." перед добавочным номером');
		$ask->answer('workdaysask', 'Установите часы работы фирмы по данному адресу. Пользователи смогут фильтровать из списка фирм те,
		которые работают в нужное им время.');
		$ask->answer('titleask', 'Введите заголовок для последующего описания фирмы.<br />Например:
		"О компании".');
		$ask->answer('textask', 'Опишите вашу компанию. Максимум 3000 знаков.');


		$aForm=new  form();
		$aForm->includeStyle();
		$aForm->includeScript();
		$aWorkdays=new workdays();
		$imgName='temp'.rand();
		//$logo='images/guest.jpg';
		if($_POST['imgName'])
		{
			$logo=$_POST['imgName'].'.jpg';
		}
		echo ('
		<script type="text/javascript" src="scripts/checkFirms.js">
		</script>
		<script type="text/javascript" src="jquery/ajaxUpload.js">
  		</script>
		<link rel="stylesheet" type="text/css" href="style/addmalls.css" />
		<div class="route">
			<div class="routeEl">
				<a href="pcabinet.php?city='.$_GET['city'].'">Личный кабинет</a>
			</div>
			<div class="routeEl">
				Создать фирму
			</div>
		</div>
		<div id="formInfo">
			Здесь вы можете зарегистрировать вашу фирму на нашем сайте в одном городе<br />
			<div id="showHiddenInfo">
				Подробнее
			</div>
			<div id="hiddenInfo">
					Чтобы зарегистрировать фирму, заполните следующую форму. Информацию о том, как правильно заполнять форму, вы можете получить
					кликнув по значку в виде вопросительного знака возле каждого элемента формы.<br /> Если ваша фирма находится в нескольких
					городах, удобнее регистрировать сеть фирм, перейдя по <a href="addnets.php?city='.$_GET['city'].'">этой ссылке</a>.
				<div id="hideHiddenInfo">
					Скрыть
				</div>
			</div>
		</div>
		  <div class="form" align="center">
		   <form method="post" id="addFirms" name="addFirms" action="" autocomplete="off">
		   	<h4 id="formHeader">Заполните форму</h4>
		   	<center id="warning">&nbsp;'.$this->warning.'</center>
			<div class="myform">
				<link rel="stylesheet" type="text/css" href="style/chooseCity.css" />
				<script type="text/javascript" src="scripts/chooseCityForm.js">
				</script>
				<script type="text/javascript" src="scripts/chooseSubdivForm.js">
				</script>
				<div class="signature">
					Выберите город
				');
				$ask->askButton('cityask');
				echo ('
				</div>
				<br />
				');
				@include('includes/cities.php');

				$city="Выберите Город";
				$curRegion="Выберите регион";
				$cityRus=new city_rus_class();
					if($_POST['city'])
					{
						$city=$_POST['city'];
						$hiddenCity=$_POST['city'];
					}
					elseif($_GET['city'])
					{
						$city=$_GET['city'];
						$hiddenCity=$_GET['city'];
					}
					else
					{
						$city="Выберите Город";
					}
					if(!$_GET['city'] && !$_POST['city'])$curRegion="Выберите регион";
					else
					{
						foreach($region as $regionKey=>$regionCities)
						{
							if(in_array($city, $regionCities))
							{
								$curRegion=$regionKey;
								break;
							}
						}
					}
					$cityRus=new city_rus_class();
					echo ('
					<div class="chooseCity">
						<div class="region" id="region"><div class="curRegion">'.$curRegion.'</div></div>
						<div class="city" id="firstcity"><div class="curCity">'.$cityRus->city_rus_im($city).'</div><input name="city" id="city" type="hidden" value="'.$hiddenCity.'"></div>
					</div>
			 </div>
			 <div class="myform">
			 	<div class="signature">
					Выберите Рубрику
				');
					$ask->askButton('rubrikask');
				echo ('
				</div>
				<br />
				');
                @include('includes/rubriks.php');
				$subdiv="Выберите Раздел Рубрики";
				$division="Выберите Рубрику";
					if($_POST['subdiv'])$subdiv=$_POST['subdiv'];
					else
					{
						$subdiv='';//"Выберите Раздел Рубрики";
					}
					if(!$_POST['subdiv'])$division="Выберите Рубрику";
					else
					{
						foreach($divises as $divKey=>$divSubdives)
						{
							if(in_array($subdiv, $divSubdives))
							{
								$division=$divKey;
								break;
							}
						}
					}
					echo ('
					<div class="chooseSubdiv">
						<div class="division" id="division"><div class="curDivision">'.$division.'</div><input name="division" id="divisionInput" type="hidden" value="'.$_POST['division'].'"></div>
						<div class="subdiv" id="firstsubdiv"><div class="curSubdiv">'.$subdiv.'</div><input name="subdiv" id="subdiv" type="hidden" value="'.$_POST['subdiv'].'"></div>
					</div>
			 </div>
		   	 <div class="myform">
		   	 	<div class="signature">
		   	 		Логотип:
		   	 	');
		   	 		$ask->askButton('logoask');
		 		echo ('
		   	 	</div>
		   	 	<div id="avatar">
			     	<div id="upload">
			 			<span id="span" class="loadButton" imgName="'.$imgName.'">Загрузить</span>
			 		</div>
			 		<div id="preview">
	   	 				<img src="'.$logo.'" width="300" height="150" />
	   	 				<input type="hidden" name="imgName" value="'.$_POST['imgName'].'" />
	   	 				<span id="status"></span>
			    	</div>
		   	 	</div>
			 </div>
			 <div class="myform">
		   	 	<div class="signature">
		   	 		Название:
		 		');
		 		$ask->askButton('nameask');
		 		echo ('
		   	 	</div>
		   	 	<input name="name" id="nameInput" type="text" autocomplete="off" value="'.$_POST['name'].'">
		   	 	<div class="checkNameRes" style="display: inline;">
		   	 		<img src="main_pics/nok.jpg" width="15" height="15">
		   	 	</div>
		   	 	<div class="signature">
		   	 		Краткое описание:
		 			');
		   	 		$ask->askButton('shortask');
		 		echo ('
		   	 	</div>
		   	 	<input name="short" id="shortInput" type="text" autocomplete="off" value="'.$_POST['short'].'" placeholder="напр: Супермаркет электроники">
		   	 	<div class="checkShortRes" style="display: inline;">
		   	 		<img src="main_pics/nok.jpg" width="15" height="15">
		   	 	</div>
		   	 	<div class="signature">
			   	 		Веб-сайт:
			   	 		');
		   	 		$ask->askButton('siteask');
		 		echo ('
		   	 	</div>
		   	 	<input name="link" id="linkInput" type="text" autocomplete="off" value="'.$_POST['link'].'" placeholder="напр: example.ru">
		   	 	<div class="checkLinkRes" style="display: inline;">
		   	 	</div>
             </div>
             <div class="myform">
             	<div class="anAddressForm">
             		<div class="signature">
             		Адрес:
             ');
             $ask->askButton('addressask');
             echo ('
             </div><br />
             ');
             address::showFormScripts();
             ($_POST['countAddress'])?$count=count($_POST['countAddress']):$count=1;
             for($i=1; $i<=$count; $i++)
             {
             	echo ('
             		<input name="countAddress[]" class="countAddress" type="hidden" value="'.$i.'">
		   	 	');
				   	 address::showForm($i, $_POST['street'.$i].','.$_POST['building'.$i].','.$_POST['mallSuggest'.$i], true, true);
				   	 echo ('
					 <div class="signature">
				   	 		Телефон:
					');
             			$ask->askButton('phoneask');
             		echo ('
			   	 	</div>
			   	 	<input name="phone'.$i.'" id="phoneInput'.$i.'" class="phoneInput" type="text" autocomplete="off" value="'.$_POST['phone'.$i].'" placeholder="напр: 8(496)422-22-22">
			   	 	<div class="checkPhoneRes'.$i.'" style="display: inline;">
			   	 	</div>
			   	 	<div class="signature">
				   	 		Часы работы:
					');
	             		$ask->askButton('workdaysask');
	             	echo ('
			   	 	</div>
			   	 	');
			   	 	$aWorkdays->editWorkdays($aWorkdays->getWorkdays($i), $i);
			   	 	if($i==$count)
			   	 	{
			            echo ('
			            <div class="addAddressForm" id="aaf'.$i.'">Добавить еще адрес</div>
			            ');
			   		}
			   		echo ('
	            </div>
	            ');
	            }
	         echo ('
	         </div>
	         <div class="myform">
	         	<div class="signature">
			   	 		Заголовок текста:
			 ');
             		$ask->askButton('titleask');
    		echo ('
		   	 	</div>
		   	 	<input name="textTitle" id="textTitle" type="text" value="'.$_POST['textTitle'].'" placeholder="напр: О компании"><br />
		   	 	<div class="signature">
			   	 		Текст:
			');
             	$ask->askButton('textask');
  		echo ('
				</div>
				<textarea name="stext" id="stext" rows="15" cols="60">'.$_POST['stext'].'</textarea>
	         </div>
			<input type="submit" name="addFirms" value="Сохранить" class="button button-blue"><br />
			<div align="left">
			<img src="main_pics/nok.jpg" width="15" height="15" style="float: left;">
			- поля, обязательные для заполнения
			</div>
		   </form>
		  </div>
		');
	}
}

$aPage=new addfirms($warning);

?>